package com.serverTechnology.teamsGroups.service;

import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.serverTechnology.teamsGroups.entity.dto.GroupUserDto;
import com.serverTechnology.teamsGroups.entity.dto.TeamsGroupAddDto;
import com.serverTechnology.teamsGroups.entity.dto.TeamsGroupEditDto;
import com.serverTechnology.teamsGroups.entity.vo.TeamsGroupAddVo;
import com.serverTechnology.teamsGroups.entity.TeamsGroup;
import com.baomidou.mybatisplus.extension.service.IService;
import com.serverTechnology.teamsGroups.entity.dto.TeamsGroupDto;
import com.serverTechnology.teamsGroups.entity.vo.TeamsGroupDetailsVo;
import com.serverTechnology.teamsGroups.entity.vo.UserVo;

import java.text.ParseException;

/**
 * 班组表 服务类
 *
 * @author 王凯炫
 * @since 2024-07-28
 */
public interface ITeamsGroupService extends IService<TeamsGroup> {
    /**
     * 新增
     * @param teamsGroup 请求参数
     */
    void add(TeamsGroupAddDto teamsGroup);

    /**
     * 删除班组人员
     * @param id 请求参数
     */
    void del(Long id);

    /**
     * 编辑
     * @param teamsGroup 请求参数
     */
    void edit(TeamsGroupEditDto teamsGroup);

    /**
     * 查询详情
     * @param teamsGroup 请求参数
     */
    TeamsGroup detail(TeamsGroup teamsGroup);

    /**
     * 获取列表（带分页）
     * @param teamsGroup 请求参数
     * @return PageResult<?>   返回结果
     */
    Page<TeamsGroupAddVo> findPage(TeamsGroupDto teamsGroup) throws ParseException;

    /**
     * 查询班组人员
     * @return
     */
    PageResult<UserVo> selectuser();

    /**
     * 查询班组详情
     * @param id
     * @return
     */
    TeamsGroupDetailsVo sele(Long id);

    /**
     * 选择班长
     * @param groupUserDto
     */
    void editMonitor(GroupUserDto groupUserDto);
}
